In packet-forwarding communications networks, a node can learn about the topology of the network and can decide, on the basis of the knowledge it acquires of the topology, how it will route traffic to each of the other network nodes. The main basis for selecting a path is path cost, which can be specified in terms of a number of hops between nodes, or by some other metric such as bandwidth of links connecting nodes, or both. Open Shortest Path First (OSPF) and Intermediate System-to-Intermediate System (IS-IS) are widely used link-state protocols which establish shortest paths based on each node's advertisements of path cost. These protocols typically do not attempt to tie-break between multiple, equal-cost, paths. Instead, they typically spread traffic across several equal-cost paths. The spreading algorithms are not specified and can vary from router to router. Alternatively, they may make a local selection of a single path, but without consideration of consistency with the selection made by other routers. Consequently, in either case the reverse direction of a flow is not guaranteed to use the path used by the forward direction.
Multicast routing protocols such as Multicast Open Shortest Path First (OSPF) depend on each router in a network constructing the same shortest path tree. For this reason, MOSPF implements a tie-breaking scheme based on link type, LAN vs. point-to-point, and router identifier to ensure that identical trees are produced. However, basing the tie-breaking decision on the parent with the largest identifier implies that, in general, the paths used by the reverse flows will not be the same as the paths used by the forward flows.
Spanning Tree Protocols (Spanning Tree Protocol (STP), Rapid Spanning Tree Protocol (RSTP), Multiple Spanning Tree Protocol (STP) are ways of creating loop-free spanning trees in an arbitrary topology. The Spanning Tree Protocol is performed by each node in the network. All of the Spanning Tree Protocols use a local tie-breaking decision based on (bridge identifier, port identifier) to select between equal-cost paths. In Spanning tree a root node is elected first, and then the tree is constructed with respect to that root by all nodes. So, although all paths are symmetrical for go and return traffic (by definition, a simple tree makes this the only possible construct), the election process is slow and the simple tree structure cannot use any redundant capacity. Similarly, Radia Perlman's Rbridges proposal uses the identifier of the parent node as tie-breaker.
Mick Seaman in his Shortest Path Bridging proposal to the EEE 802.1 Working Group describes a simple protocol enhancement to the Rapid Spanning Tree Protocol which enforces consistent tie-breaking decisions, by adding a ‘cut vector’. The proposal uses a VID per node, to identify a Spanning Tree per node. In order to fit all the information that needs to be transmitted by a bridge in a single legal Ethernet frame, this technique currently limits the size of the Ethernet network to 32 bridges.
FIG. 1 illustrates how, even for a trivial network example, a tie-breaking method based on the parent node identifier fails to produce symmetric paths. In this example, the links are considered as having equal-cost and so the determination of path cost simply considers the number of hops. Consider first computing the path from A to B. When the computation reaches node 2, the existence of equal-cost paths will be discovered. There is a first path (A-1-3-6) and a second path (A-1-4-5). If the tie-breaking algorithm selects a path based on the parent node with the smallest identifier, it will select the second path (A-1-4-5) because node identifier 5 is smaller than node identifier 6. However, now consider computing the path from B to A. When the computation reaches node 1, the existence of equal-cost paths will be discovered. There is a first path (B-2-6-3) and a second path (B-2-5-4). Using the same tie-breaking criterion, the tie-breaking algorithm selects the first path (B-2-6-3) because node identifier 3 is smaller than node identifier 4. So, it can be seen that the shortest path computations made by nodes A and B provide inconsistent results.
There is a requirement in some emerging protocols, such as Provider Link State Bridging (PLSB), a proposal to EEE 802.1aq, to preserve congruency of forwarding across the network for both unicast and unknown/multicast traffic and to use a common path in both forward and reverse directions of flow. Accordingly, it is important that nodes can consistently arrive at the same decision when tie-breaking between equal-cost paths. Furthermore, it is desirable that a node can perform the tie-breaking with the minimum amount of processing effort.